/*
 * Universo.h
 *
 *  Created on: Feb 16, 2010
 *      Author: jgrande
 */

#ifndef UNIVERSO_H_
#define UNIVERSO_H_

#include <unistd.h>
#include <list>

#include "Planeta.h"

#include "../../Common/InformacionCreacionUniverso.h"

#include "../../Common/Mensajes/MensajeAplicacion.h"
#include "../../Common/Mensajes/DatosCrearFlotaAvisoJugador.h"
#include "../../Common/Mensajes/DatosCambiarRumboAvisoJugador.h"
#include "../../Common/Mensajes/DatosCambiaDuenio.h"
#include "../../Common/Mensajes/DatosCantidadNaves.h"

#include "../../../Framework/IO/log.h"
#include "../../../Framework/Common/utiles.h"

#include "../../../Middleware/Comunicaciones/MiddlewareCliente.h"

using aplicacion::InformacionCreacionUniverso;

namespace aplicacion {
namespace jugador {

class Universo {

	IdUniverso _id; //TODO INICIALIZAR

	//pid_t obspid;

	//std::list<Planeta*> planetas;

public:

	Universo();

	Universo(const InformacionCreacionUniverso& dto);

	Universo(IdUniverso id);

	const IdUniverso& getId() const
	{
		return _id;
	}
/*
	bool lanzarObservador();

	void observar();

	void onFlotaCreada(DatosCrearFlotaAvisoJugador& msj);
	void onCambioRumboFlota(DatosCambiarRumboAvisoJugador& msj);
	void onCambioDuenio(DatosCambiaDuenio& msj);
	void onCantNaves(DatosCantidadNaves& msj);
*/
	//imprime el estado del universo en un formato legible
	std::string toString()
	{
		//TODO
		return "FALTA IMPLEMENTAR";
	}
};

} // namespace jugador
} // namespace aplicacion

#endif /* UNIVERSO_H_ */
